//
//  AYuStatusListViewModel.swift
//  SHWeibo3
//
//  Created by 余伟康 on 16/7/23.
//  Copyright © 2016年 wangce. All rights reserved.
//

import UIKit

class AYuStatusListViewModel: NSObject {

    // 全局的viewModel数组
    lazy var statusList:[AYuStatusViewModel] = [AYuStatusViewModel]()
}

// MARK: - 微博首页

extension AYuStatusListViewModel{

    func loadHomeData(isPullUp: Bool,isFinish:(isSuc:Bool)->()){
        
        var maxId:Int64 = 0
        var sinceId: Int64 = 0
        // 上啦加载更多
        if isPullUp {
            maxId = statusList.last?.status?.id ?? 0
            if maxId > 0 {
                maxId -= 1
            }
        }else {
            // 下拉刷新
            sinceId = statusList.first?.status?.id ?? 0
        }
        
        AYuNetworkTools.sharedTools.homeLoadData(sinceId,maxId: maxId,success:{ (resoponse) -> () in
//            print("请求成功\(resoponse)")
            // 判断是否为nil 而且是否可以转换成数组
            guard let res = resoponse?["statuses"] as? [[String:AnyObject]] else{
                
                isFinish(isSuc: false)
                return
            }
            
            
            // 定义一个临时可变数组
            var tempArray : [AYuStatusViewModel] = [AYuStatusViewModel]()
            
            
            // 遍历数组
            for dic in res {
                
                // 创建一个模型
                let status = AYuStatus(dict: dic)
                
                // 创建一个ViewModel
                let statusViewModel = AYuStatusViewModel(status: status)
                
                // 添加viewModel
                tempArray.append(statusViewModel)
            }

            
            // 上啦加载更多
            if isPullUp {
                self.statusList = self.statusList + tempArray
            }else {
                // 下拉刷新
                self.statusList = tempArray + self.statusList
            }
            
            isFinish(isSuc: true)
            }) { (error) -> () in
                
                print("请求失败aaa\(error)")
                
                isFinish(isSuc: false)
        }
    }
}















